package com.iplant.base.utils.annotation.field;


import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 本表字段
 * @author xiuto
 */
@Inherited
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD})
public @interface DBField {
    String name() default "";

    /**
     * 插入参数
     * @return
     */
    boolean Insert() default true;


    /**
     * 更新参数，或更新所需要的主键参数
     * @return
     */
    boolean Update() default true;

    /**
     * 是否存在数据库
     * @return
     */
    boolean exist() default true;

    /**
     * 是否不可以为空
     * @return
     */
    boolean notNull() default true;


    /**
     * 是否检查数据有效性
     * @return
     */
    boolean CheckValue() default false;

    /**
     * 字符串的长度
     * @return
     */
    int length() default 255;

    /**
     * 表中列的备注
     * @return
     */
    String Description() default "";

    /**
     * 表中列的默认值
     * @return
     */
    String DefaultValue() default "";

    /**
     * 是否自动增量 只有Int可以配置  一般用于顺序号
     * @return
     */
    boolean ValueAuto() default false;

    /**
     * 是否是Json存储 只对List对象生效
     * @return
     */
    boolean isJson() default false;
}
